// 引入 uni-ajax 模块
import ajax from '@/uni_modules/u-ajax/js_sdk'
import store from '@/store';
import {
	judgeLogin
} from '@/utils/login';
// 创建请求实例
const instance = ajax.create({
	// 初始配置
	baseURL: 'http://127.0.0.1/bill'
})

// 添加请求拦截器
instance.interceptors.request.use(
	config => {
		// 在发送请求前做些什么
		// 在发送请求之前做些什么 token
		let storeUserInfo = store.state.userInfo;
		if (!storeUserInfo.token) { // nvue页面读取不到vuex里面数据，将取缓存
			storeUserInfo = uni.getStorageSync("userInfo");
		}
		if (storeUserInfo.token) {
			config.header['token'] = storeUserInfo.token
		}
		return config;
	},
	error => {
		// 对请求错误做些什么
		return Promise.reject(error)
	}
)

function tag() {
	uni.showModal({
		title: '温馨提示',
		content: 'token失效,重新授权',
		success(res) {
			if (res.confirm) {
				uni.navigateTo({
					url: 'pages/index/index',
				});
			} else if (res.cancel) {
				tag()
			}
		}
	})
}

// 添加响应拦截器
instance.interceptors.response.use(
	response => {
		// 对响应数据做些什么
		let res = response.data;
		if (null != res.code) {
			if (res.code === 1) {
				return res;
			} else if (res.code === -1) {
				//登录失效
				uni.clearStorageSync();
				store.state.userInfo.token = ''
				uni.switchTab({
					url: '/pages/index/index',
					success: (res) => {
						let page = getCurrentPages().pop();
						if (page == undefined || page == null) return;
						page.onLoad();
					}
				})
				// tag();
			} else {
				if (null != res.msg && '' != res.msg) {
					uni.$tm.toast(res.msg)
					return Promise.reject(res.msg);
				} else {
					uni.$tm.toast("系统异常")
					return Promise.reject('系统异常');
				}
			}
		} else {
			return response;
		}
		return response
	},
	error => {
		// 对响应错误做些什么
		return Promise.reject(error)
	}
)

// 导出 create 创建后的实例
export default instance
